﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Business_Entity;
using System.Data.SqlClient;
using System.Data;

namespace DAOFactory
{
    public class DAOProductoProveedor
    {
        public DAOProductoProveedor()
        {


        }
        public static List<String> getDBListaTipoProductos()
        {
          
	            List<String> lstTipoProd = new List<String>();
	            SqlCommand cmd = new SqlCommand("COMPRAS_BUSCAR_TIPO_PRODUCTOS_M", ConnectionManager.getConnection());
	            cmd.CommandType = CommandType.StoredProcedure;
	            SqlDataReader reader = cmd.ExecuteReader();
	            while (reader.Read())
	            {
	            	String descripcion = reader[0].ToString();
	                lstTipoProd.Add(descripcion);
	            }
	            reader.Close();
	            
	            //ConnectionManager.closeConnection();
	
	            return lstTipoProd;
            
        }
        public static List<Business_Entity.BEProductoProveedor> getDBListaProductos(int id, String nombre, String TProducto,String Proveedor)
        {
        	
	        	List<BEProductoProveedor> lstprodProv = new List<BEProductoProveedor>();
	            String sql="";
	            String cad="HABILITADO";
	            if (Proveedor.CompareTo("TODOS")==0){
		            sql="select a.idproducto,a.Nombre,b.Descripcion,a.Descripcion from producto a,TipoProducto b where "+
					"b.idTipoProducto=a.idTipoProducto and a.Estado='"+cad+"' ";
	        	}
	            else{
	            	sql="select distinct(a.idproducto),a.Nombre,b.Descripcion,a.Descripcion,d.RazonSocial "+
	            		"from producto a,TipoProducto b, PRODUCTOXPROVEEDOR c,PROVEEDOR d "+
						"where b.idTipoProducto=a.idTipoProducto and a.Estado='HABILITADO' and c.ESTADO='HABILITADO' "+
	 					"and a.idProducto=c.idProducto  and d.idProveedor=c.idProveedor and d.RazonSocial='"+Proveedor+"' ";
	            }
	            if (id>0){
	            	sql+="  and a.idProducto="+id;
	            }
	            else{
	            	if (nombre.CompareTo("")!=0){
	            		sql+=" and a.Nombre like '%"+nombre+"%' ";
	            	}
	            	if (TProducto.CompareTo("Todos")!=0){
	            		sql+=" and b.Descripcion='"+TProducto+"'	";
	            	}
	            }
	            sql+="order by 1";
	            SqlCommand cmd = new SqlCommand(sql, ConnectionManager.getConnection());
	            //cmd.CommandType = CommandType.StoredProcedure;
				/*
	            cmd.Parameters.Add("@dato", SqlDbType.Int);
	            cmd.Parameters["@dato"].Value = id;
	            cmd.Parameters.Add("@nombre", SqlDbType.VarChar);
	            cmd.Parameters["@nombre"].Value = nombre;
	            cmd.Parameters.Add("@tipoProducto", SqlDbType.VarChar);
	            cmd.Parameters["@tipoProducto"].Value = TProducto;
	            cmd.Parameters.Add("@Proveedor",SqlDbType.VarChar);
	            cmd.Parameters["@Proveedor"].Value= Proveedor;
				*/
	            BEProductoProveedor c;
	            SqlDataReader reader = cmd.ExecuteReader();
	            String prov="";
	            while (reader.Read())
	            {
	            	int idx = int.Parse(reader[0].ToString());
	            	String nombreT = reader[1].ToString();
	                String TipoProd = reader[2].ToString();
	                String desc=reader[3].ToString();
	                if (Proveedor.CompareTo("TODOS")!=0){
	                	prov=reader[4].ToString();
	                }
	                c = new BEProductoProveedor();
	
	                c.Producto.Codigo = idx;
	                c.Producto.Nombre = nombreT;
	                c.Producto.TipoProducto.Descripcion = TipoProd;
	                c.Producto.Descripcion=desc;
	                c.Proveedor.RazonSocial=prov;
	                lstprodProv.Add(c);
	            }
	            reader.Close();
	            //ConnectionManager.closeConnection();
	
	            return lstprodProv;
	            
        	
        }
        

    }
}